@DATABASE @$VER: DeviceLock.guide 1.2 (28.2.94) @AUTHOR Thomas Wagner @NODE MAIN "Contents" Manual: DeviceLock Version 1.2 ================================== @{U}What is DeviceLock ?@{UU} Briefly: an Intuition-Interface with HotKeySupport for the CLI-Program LOCK. DeviceLock allows the user to deny write access to certain drives. It is controlable by window and hotkeys. Needs OS 2.4 or higher. It supports some functions of 2.1 and 3.x. Details see @{" Features " LINK Features}. @{B} Don't blame me for the translation, do it better!. @{UB} @{U}Contents@{UU} You should at least read the chapters marked with !. ! @{" Copyright, Address " LINK Copyright} ! @{" Warranty " LINK Haftung } @{" About DeviceLock " LINK Prog } @{" Changes " LINK Changes } @{" Features " LINK Features } @{" Arguments " LINK Argumente} ! @{" Prefs " LINK Prefs } @{" Operate & more " LINK Bedienung} @{" Requester " LINK Requester} @{" Credits " LINK Credits } ---> @{" Quickstart " LINK Quick } @ENDNODE @NODE Copyright "Copyright and Address" @{U}Copyright@{UU} I try to translate the german version without errors. Nevertheless only the german version is valid! See @{" german docs " LINK /deutsch/DeviceLock.guide/Copyright} DeviceLock, 1994 by Thomas Wagner, Pyrbaum [tom]. You may publish the paket only on disks or other media which are free distributable or which are acessable without costs (PD disks, mailboxes). It is hereby explicitly granted to publish it on AMOK, FISH and AminetCD. It is strictly forbidden to use the paket, sources or parts of the paket or the sources for commercial purposes. It is allowed to change the program for personal purposes, but it is not allowed to publish the changed program or the sources without the knowledge of the author. This should only prevent the formation of many only slight different programs. I will further develop the program (it's only the question how fast!) Send bug reports and improvements to the author (address below). Catalogs in other languages are welcome, too. If you want me to answer, please include SASE or use E-Mail. The basic paket includes: - DeviceLock - deutsch/DeviceLock.guide - english/DeviceLock.guide - DeviceLock.prefs - Catalogs/deutsch/DeviceLock.catalog - DeviceLock.cd This basic paket must be included completely to all publications. All other parts (Oberon source, ...) are optional. @B{B}The copyright of imported modules is not affected by these copyright notices, and they are to be respected!@{UB} @{U}Address@{UU} Thomas Wagner M hlenweg 7 90602 Pyrbaum GERMANY @{U}E-Mail@{UU} tom@oberon.nbg.sub.org @ENDNODE @NODE Haftung Warranty @{U}Warranty@{UU} I try to translate the german version without any mistakes. Nevertheless only the german version is valid! See @{" german docs " LINK /deutsch/DeviceLock.guide/Haftung} The author grants no warranty for any damage caused direct or indirect by the program. There is no guarantee to the functionality or efficiency of the program. @{B}There's no warranty of any kind@{UB} (This may sound strange, but I don't ask any money for the program, so why should I held responsible for any damage?) There might be programs that are very picky about not getting write access. Please test this with your often used programs. This should also be done with the following situation: drive is locked, requester (... is locked) appears, unlock, klick Retry on requester. It didn't have any problems up to now, but keep on the save side. @ENDNODE @NODE Prog "About DeviceLock" @{U}About DeviceLock@{UU} For the moment the program has the following status: "It is (more than) sufficient for me" @ENDNODE @NODE Changes "Changes" New in version 1.1: + new options (preference file): KeyNorm, NormAllBeep format change for option Lock; Y und N OBSOLETE (but they still work) Changes in 1.2: - bad bug: because of changing to new Oberon interfaces in 1.1 the stack went a a bit small (who has a 2 GB stack?). This also causes DeviceLock to fail when trying to print an error message ... Thanks to Thomas Kobler for reporting the bug. If you started a new DeviceLock the earlier versions of DeviceLock only opened the window of the old program and the new terminated at once. Now the old one terminates and the new one will procede normal. This makes the procedure of finding your right prefs easier. ATTENTION: When changing the passwort you should quit DeviceLock normal (i.e. menu). If you simple restart DeviceLock, the old one will quit immediately without unlocking the drives. That may cause some trouble! @ENDNODE @NODE Features Features * DeviceLock is a commodity * font adaptive * supports locale (OS 2.1 or higher) * adapts size of checkboxes to font-height (only 3.0 or higher) * supports SiyOnlyZoom (only 3.0 or higher) * uses reqtools.library ( by Nico Fran ois) if V38 or higher is available * controlable by hotkeys @ENDNODE @NODE Argumente Arguments @{U}How to start DeviceLock@{UU} You can start DeviceLock from CLI or from Workbench. If you like the program: Copy DeviceLock into your WBstartup. The flag DONOTWAIT is already set. The proper place for the prefs is ENVARC:. The template is: SETTINGS/K,PS=PUBSCREEN/K,NOWARNINGS/S,TOOLPRI/N/K, CX_PRIORITY/N/K,CX_POPUP/K,CX_POPKEY/K These are valid for CLI and as tooltypes for workbench start. @{B}SETTINGS/K@{UB} Load these settings instead of normal Prefs-File. You can use and name. @{B}PS=PUBSCREEN/K@{UB} Pubscreen on which to open window. @{B}NOWARNIGS/S@{UB} Suppress warnings. @{B}TOOLPRI/N/K@{UB} ( Set priority for DeviceLock. DEFAULT 1. @{B}CX_PRIORITY/N/K@{UB} HotKey priority. If two programs want to get the same hotkey the program with the higher priority get it first (and in most cases as the only one). @{B}CX_POPUP/S@{UB} Open window on startup? @{B}CX_POPKEY/K@{UB} Hotkey to open/close window. @{B}CLI@{UB} WB opens a requester to ask for parameters for CLI-Start. Attention: If you specify this option all other options will be ignored. @{B}DONOTWAIT@{UB} You must specify this, if you want to place DeviceLock in your WBstartup drawer. In the distributed DeviceLock.info already set. DEFAULT: DeviceLock.prefs; search path: - current drawer - ENV: - drawer of program Theses options are usually defined in DeviceLock.prefs. CLI/WB arguments override arguments specified in DeviceLock.prefs. Theses options are used and interpreted by the Workbench. @ENDNODE @NODE Prefs "DeviceLock.prefs" @{U}DeviceLock.prefs@{UU} @{U}IMPORTANT:@{UU} You must adapt DeviceLock.prefs to your own needs. Nevertheless it should work fine under standard 2.x Workbench (and should work with small changes on WB 3.0: change WB_2.x into the device name of your system device). You can add comments to the Prefs in three ways: - SPACE in the first column; - ";" everything after that is a comment. - emtpy lines count as comments, too The capitalization is not important for the comments and the version string. @{U}Structure:@{UU} In the @{B} first line@{UB} must be a valid version string for DeviceLock.Prefs Version 1 (Commodore norm; the date is not important for DeviceLock; you can change the revision as you like). The start column of the version string is not important but the line must be marked as comment (see example). Example: ;$VER DeviceLock.prefs 1.45 (23.3.90) Then you can add the options in (nearly) any order. The exceptions are DeviceName, PrintName, Passkey, Lock, HotKey. The form a special group. The structure is the same for all options: NameOfOption=Specification The NameOfOption must start in the first column, then add the = (w/o space) then the Specification (w/o space, too). Everything between the = and the end of line or a comment (;) is considered Specification. But the Specification is right justified, i.e. the right spaces are removed. If you don't specify an option the default value is used (if possible). For BOOLEAN values you can use Yes (short Y) or No (short N). Now the "normal" options. If you specify one of these options multiple times only the last one is taken. @{B}LeftEdge@{UB} Nothing to say Default = 0 @{B}TopEdge@{UB} Nothing to say Default = 0 @{B}LeftEdgeZoomed@{UB} Left edge for zoomed window Default = 0 @{B}TopEdgeZoomed@{UB} Top edge for zoomed window Default = 0 @{B}OpenWindow@{UB} Open window at startup? Equals the CLI/WB argument CX_Popup. CX_Popup overwrites OpenWindow! Default=Yes @{B}OpenZoomed@{UB} Open window in zoomed state. It is possible to set OpenWindow=N and OpenZoomed=Y. In this case the window will opened in zoomed state when activated by hotkey. Default=No @{B}CheckTime@{UB} DeviceLock checks after a period whether the state of the drives has changed or not and refreshes the gadgets. This value sets the period in seconds. Default=3 @{B}KeyLock@{UB} If you press the hotkey specified by this string all drives will be locked. no Default, i.e. not specified, no hotkey @{B}KeyNorm@{UB} If you press the hotkey specified by this string all drives will be set to "normal" state. Normal state is defined by the option "Lock". no Default, i.e. not specified, no hotkey @{B}KeyWindow@{UB} If you press the hotkey specified by this string the window will be opened/closes. If you don't specifiy this you can open the window only with the exchange program. Equals the CLI/WB argument CX_Popkey. CX_Popkey overwrites KeyWindow! no Default, i.e. not specified, no hotkey @{B}KeyFront@{UB} If you press the hotkey specified by this string the window tries to open on the frontmost screen. This is not possible if 1. the first screen is no pubscreen 2. it is in private mode If this fail, thew window will be opened on the default pubscreen. no Default, i.e. not specified, no hotkey @{B}PubScreen@{UB} Name of the pubscreen on which to open DeviceLock on startup. Same restrictions as KeyFront. kein Default d.h. nicht angegeben = wird auf DefaultPubScreen ge ffnet @{B}LockString@{UB} This string is used to construct the executable string to LOCK the drive. There must be two %s in this string. So "lock %s on %s" is expanded to for example "lock Work: on ThisIsMyPassKey". Default = "lock %s on %s" (there should be no need to change this, but who knows ...) @{B}UnlockString@{UB} This string is used to construct the executable string to UNLOCK the drive. There must be two %s in this string. So "lock %s of %s" is expanded to for example "lock Work: on ThisIsMyPassKey". Default = "lock %s off %s" (there should be no need to change this, but who knows ...) @{B}SizeOnlyZoom@{UB} If this flag is set to Yes, then pressing the ZOOM gadget only performs a size only zoom, i.e. the left and top edge of the window don't change (if possible). This option is effective only with OS 3.0 or higher. Default=Yes, if OS 3.0 or higher No, else @{B}UnlockBeep@{UB} To prevent unlocking one drive accidently by hotkey, you can specify with this option to perform a DisplayBeep whenever an unlock hotkey is pressed. Default=Yes @{B}LockAllBeep@{UB} If enabled, every use of the hotkey which locks all drives performs a DisplayBeep. Attention: If you enable UnlockBeep and LockAllBeep you can't distinguish between LockAll and Unlock! Default=No @{B}NormAllBeep@{UB} If enabled, every use of the hotkey which normalizes all drives performs a DisplayBeep. Default=No The following options are known and are processed, but they have no function. Therefor they are not explained any further. NotifyDL RemPosition Now the special options: @{B}Devicename@{UB} Allocates memory for the drive and set default values for the other special options. This option must be specified at least one time (it is the purpose of this program to "handle" drives). You must specify this option before the other spcial options, to specify which drive should be changed. If you specify one of the other special options before the will be ignored. You can specify this option multiple times without overwriting older specifications. This value replaces the first %s in the (Un)Lock string. NO DEFAULT POSSIBLE No you can change the default values of the new generated drive: @{B}PrintName@{UB} The name printed besides the checkbox gadget. Default=Devicename @{B}PassKey@{UB} The password to lock the drive. Replaces the second %s in the (Un)Lock string. no default @{B}Lock@{UB} Defines the normal state of the drive. The drive is set to this state after the start or after the hotkey KeyNorm. Possible values: + locked - unlocked * keep actual state Default=+ @{B}HotKey@{UB} If you press the hotkey specified by this string, this drive will be unlocked. no Default, i.e. not specified, no hotkey What descriptions you can use depends on the version of the operating system. You can find details in the documentation to your computer. Typical examples are in DeviceLock.Prefs. @ENDNODE @NODE Bedienung "Operate & more" @{U}Usage:@{UU} Here's a short help to use the program: Note: All texts are described in english. If you use a catalog they will appear in an other language. @{" Menu " LINK Menu} @{" Gadgets " LINK Gadgets} @{" Other " LINK Div} @ENDNODE @NODE Menu Menu @{U}The menu:@{UU} @{B}Project:@{UB} LOCK LOCK's all drives UNLOCK UNLOCK's all drives Version, Copyright ... Open gadget with version and copyright notice Hide Closes window ATTENTION: does not quit the program Quit ... Quit after confirmation. If all drives are unlocked there wil be no confirmation requester! This requester can also questioned to not touch the lock-state of the drives (be careful!) @ENDNODE @NODE Gadgets Gadgets @{U}Gadgets:@{UU} CLOSE: Closes the window ATTENTION: does not quit the program LOCK: LOCK's all drives With the checkboxes you can (UN)LOCK a single drive. A checkmark indicates that this drive is locked. If a checkbox is ghosted, this drives is not accessable. @ENDNODE @NODE Div Other @{U}Other:@{UU} * If the window is zoomed, the width is adapted to the number of the drives (there are max. 20 drives shown in the title). The title shows the status in the order of the drives: + write enabled (UNLOCK) - write disabled (LOCK) not accessable * Pressing the left mousebutton in the window, but not on a gadget or the title, alldroives will be checked immediately. * If the window is activated there is NO automatic check of the drives, and no refresh of the gadgets and the title (Exceptions: LOCKALL, Menu-select and left mousebutton). This is because there are problems with refreshing while pressing a gadget. * Quitting DeviceLock with Exchange results in unlocking all drives (no confirmation requester). * All hotkeys are functional even when the window is closed ... * @{B}Maximum's:@{UB} - Length of the drivename (for gadgets) : 20 characters - Length of the DOS-drivenamne : 20 characters - Length of the password : 30 characters - Length of the pubscreen name : 60 characters - Length of the string with the two %s : 30 characters - L nge der Strings mit den zwei %s : 30 characters each - Number of drives : MAX(INTEGER) If you exceed these values there will be a warning and the string will be truncated. @{B}ATTENTION: You need Oberon Interfaces for OS 3.x in order to compile these program!@{UB} @{U}Notes@{UU} * If you start a new DeviceLock while another is still active, the old one immediatley quits (without unlocking the drives). * It was intention not to localise the string "All rights reserved." in the screentitle. * I added some features to ensure fully functionality for removable medias (disk drives), but the program was designed for not removable medias (harddrives). * The program can prevent some viruses from writing to the drive (AS LONG AS IT IS LOCKED), @{B}but this is not the purpose of the program and so doesn't fulfill this task very well!@{UB} @{U}Hints@{UU} * Make lock (CLI command) resident. Speeds up (un)locking. * Delete options set identical to defaults. Makes the file shorter and speeds up the "compiling" time. * Delete comments and spaces after options. Makes the file shorter and speeds up the "compiling" time. @ENDNODE @NODE Requester "Warnings, Errors" @{U}Warnings, Errors@{UU} @{" Warnings " LINK "Warnungen"} @{" Errors " LINK "Fehler"} @ENDNODE @NODE Warnungen "Warnings" @{U}Warnings:@{UU} Common: Warnings don't quit the program. There might be a requester to quit the program. You can choose between these alternatives to answer the following warnigs: @{B}Proceed@{UB} Proceed with the program. @{B}No further warnings@{UB} Proceed with the program and supress further warnings. @{B}Quit@{UB} Quit the program. @{B}Cannot add ''@{UB} For some reason I can't add . Perhaps memory allocation failed. @{B}'' is not a valid hotkey@{UB} The description is invalid. Maybe wrong spelled. @{B}Original string was too long, stripped down to ''@{UB} One of the length limited strings (@{" Maximum's " LINK Div 25}) is to long and was stripped to . @{B}Converting '<...>' into number failed. Treated as 0.@{UB} <...> is no number or is too big. I instead use 0 for the number. @{B}I cannot interpret BOOLEAN value '<...>'. Treated as FALSE.@{UB} Only Y and N (and of course y and n) are valid. I treated the value as FALSE (No). @{B}'<...>' invalid format. These line is ignored.@{UB} '='is missing or there is nothing after the '='. @{B}Unknown option '<...>'.@{UB} The line is build correct, but <...> is an unknown option. The following warnings (called "problems") can only be noticed. There's no way to supress them: @{B}Can't lock ''@{UB} LOCK ON was executed, but the drive is not locked now. One cause is drives not supporting the LOCK-Packet (like Ram-Disk). @{B}Can't unlock ''@{UB} LOCK ON was executed, but the drive is still locked. One cause is that the drives was previous locked with another password. @ENDNODE @NODE Fehler "Errors" @{U}Errors:@{UU} After an error occured, the program quits. You can only notice the error requesters. @{B} failed@{UB} For some reason this (internal) PROCEDURE couldn't be executed. Probably insufficient memory. In extreme cases, even this requester myay not pop up! @{B}Can't execute lock ... on @{UB} What should I say more! @{B}Can't execute lock ... off @{UB} What should I say more! @{B}Specified settings are no DeviceLock.Prefs .@{UB} You specified a preference file which is NO real DeviceLock preference file. Perhaps you forgot the version line or it is in a wrong position. @{B}I can't find/read given settings@{UB} A specified preference file doesn't exist or is read protected. @{B}No valid DeviceLock.Prefs in path.@{UB} There was a DeviceLock.Prefs , but it is no valid preference file. Perhaps you forgot the version line or it is in a wrong position. @{B}I can't find DeviceLock.Prefs in path.@{UB} In the search path (cureent dir, ENV:, PROGDIR:) there's no preference file. @{B}Some Problems while reading ToolTypes@{UB} For some reason the module WBReadArgs couldn't interpret the tooltypes. Perhaps you specified a string instead of an integer number. @{B}No drive specifications in settings@{UB} There is a valid preference file, but there are no drive specifications. @ENDNODE @NODE Credits Credits @{U}Credits to (alphabetical order):@{UU} @{B}Freddy@{UB} @{B}hartmut@{UB} and of course to following persons (order by rolling dices ;-) ) +---------+-------------------+------------------------------------ | Program | catcompMO | @{B}Oliver Knorr [olk]@{UB} | Module | HotKey.mod | @{B}Thomas Igracki@{UB} | Module | PrintF.mod | @{B}Volker Rudolf@{UB} | Module | MoreIntuition.mod | @{B}Michael Hohmann [mick]@{UB} | Module | ReqTools.mod | @{B}Kay Bolay [kay]@{UB} | Library | reqtools.library | @{B}Nico Fran ois@{UB} | Module | WBReadArgs.mod | @{B}hartmut Goebel [hG]@{UB} +---------+-------------------+------------------------------------ @ENDNODE @NODE Quick Quickstart @{U} Quickstart: @{UU} @{U} @{UU} For Quickstarters, too: DeviceLock, 1994 by Thomas Wagner, Pyrbaum [tom]. for more see @{" Copyright " LINK Copyright}, exact see @{" german docs " LINK /deutsch/DeviceLock.guide/Copyright}. The author grants no warranty for any damage caused direct or indirect by the program. There is no guarantee to the functionality or efficiency of the program. @{B}There's no warranty of any kind@{UB} for more see @{" Warranty " LINK Haftung}, exact see @{" german docs " LINK /deutsch/DeviceLock.guide/Haftung}. @{U} @{UU} You can try DeviceLock: Copy DeviceLock (with DeviceLock.info) to Wbstartup and DeviceLock.Prefs to ENVARC: and ENV: Perhaps you must adapt "DeviceLock.Prefs" to your system. Restart DeviceLock after changing the Preferences to load the new one. Important for testing: Unlock all drives when exiting the program or the drives may stay write disabled! Thats the reason why the passwords in the demo prefs are commented out. @ENDNODE